package com.ssy.lingxi.order.api.model.vo.request;

import com.ssy.lingxi.common.constant.order.OrderTradeProcessTypeEnum;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Positive;
import java.io.Serializable;
import java.util.List;

/**
 * 查询交易流程配置接口参数VO
 * @author 万宁
 * @version 2.0.0
 * @date 2021-07-25
 */
public class OrderTradeProcessFeignVO implements Serializable {
    private static final long serialVersionUID = 6021795004194855550L;

    /**
     * 会员Id
     */
    @NotNull(message = "会员Id要大于等于0")
    @Positive(message = "会员Id要大于等于0")
    private Long memberId;

    /**
     * 会员角色Id
     */
    @NotNull(message = "会员角色Id要大于等于0")
    @Positive(message = "会员角色Id要大于等于0")
    private Long roleId;

    /**
     * 适用商城Id
     */
    @NotNull(message = "适用商城Id要大于0")
    @Positive(message = "适用商城Id要大于0")
    private Long shopId;

    /**
     * 交易流程类型枚举
     */
    @NotNull(message = "交易流程类型枚举不能为空")
    private OrderTradeProcessTypeEnum processTypeEnum;

    /**
     * 商品Id、商品SkuId列表
     */
    @Valid
    private List<OrderTradeProcessProductFeignVO> products;

    public Long getMemberId() {
        return memberId;
    }

    public void setMemberId(Long memberId) {
        this.memberId = memberId;
    }

    public Long getRoleId() {
        return roleId;
    }

    public void setRoleId(Long roleId) {
        this.roleId = roleId;
    }

    public Long getShopId() {
        return shopId;
    }

    public void setShopId(Long shopId) {
        this.shopId = shopId;
    }

    public OrderTradeProcessTypeEnum getProcessTypeEnum() {
        return processTypeEnum;
    }

    public void setProcessTypeEnum(OrderTradeProcessTypeEnum processTypeEnum) {
        this.processTypeEnum = processTypeEnum;
    }

    public List<OrderTradeProcessProductFeignVO> getProducts() {
        return products;
    }

    public void setProducts(List<OrderTradeProcessProductFeignVO> products) {
        this.products = products;
    }
}
